//函数的参数类型 可以按照普通数据类型加注解的方法去直接写 num1:number, num2:number
//函数的返回值 注解 () :number=>{} 如果没有返回值 类型用void
//在开发过程中,一般不用去写函数返回值的类型注解(自动推导)

function sum(num1:number, num2:number){
    return num1 + num2
}
sum(1,2);


//箭头函数或者匿名函数
//item可以根据上下文环境推导出来, 这个时候可以不去添加类型注解
let arr = ["a","b","c"];
// let arr = [1,2,3,4,5];
arr.forEach(function (item){
    item.toUpperCase()
})

//函数中的参数是对象的时候
//data => 对象
//data: {name:string, age:number, flag?:boolean} //加问号表示可以传递也可以不传递\
//属性之间可以使用,号或者;来分割
//每个属性的类型也是可以指定的 ,如果不指定那么就是any类型
function sentData(data: {name:string, age:number, flag?:boolean}){
    console.log(data.name)
    console.log(data.age)
    console.log(data.flag)
}

sentData({name:"1",age:2, flag:true})
sentData({name:"1",age:2})